// 可以使用下面的方式，但是vscode会报警告
// import shape = require("./IShape"); 
// 也可以直接使用ES6的方式引入模块
import * as shape from "./IShape";

export class Rectangle implements shape.IShape,shape.IGoods { 

    private height:number;

    private width:number;

    constructor(width:number,height:number) {
        this.width = width;
        this.height = height;
    }


    public getArea():number { 
       return this.width * this.height;
    } 

    public getPer():number { 
        return 2 * (this.width + this.height);
    }
    
    public getPrice():number {
        return 10;
    }

    public getName():string {
        return "长方形";
    }
 }

 let rect1 = new Rectangle(20,10);
 console.log(rect1.getArea());
 console.log(rect1.getPer());

// 作业：
//   定义一个图形接口IShape，声明两个方法，getArea():number和getPer():number。并使用模块化暴露该接口。
//   在新的文件中定义以下三个类，并暴露出去：
//   定义矩形类，使用长和宽构造矩形，并实现IShape接口，并使用模块化暴露该类。
//   定义三角形类，使用三条边构造三角形（选做：构造时如果三条边不能构造出三角形，抛出异常），并实现IShape接口，并使用模块化暴露该类。
//   定义圆形类，使用半径构造圆形，并实现IShape接口，并使用模块化暴露该类。

//   在新的文件中，引入IShape,矩形类、三角形类、圆形类。
//  定义一个方法，传入图形接口数组，返回二位长的元组，元组第一位为图形的面积和，第二位为图形的周长和